/**
 * Created by Administrator on 2018/5/10.
 */
define(function (require,exports,module) {
    require("./gante.css");
    require("")
    var sTpl = require("./template.html");
    var DEFINE_STATUS = require("../../util/status.js");
    var VueComponent = Vue.extend({
        template: sTpl,
        props:['parentData'],
        data:function () {
           return {
               DEFINE_STATUS:DEFINE_STATUS,
               flats:[],
               baseNum:0,
           };
        },
        watch:{
           "parentData.flats":function (val) {
               this.flats =val;
               this.$set(this,'flats',val)

           }
        },
        methods:{
        getClass:function (flat) {
           if(flat.runStatus==DEFINE_STATUS.statusNum.FREE){
                  return "unDistribution";
           }
            if(flat.runStatus==DEFINE_STATUS.statusNum.OCCUPY){
                return "distribution-Occupy";
            }
            if(flat.runStatus==DEFINE_STATUS.statusNum.ALLOCATED_UN_OCCUPY){
                return "distribution-unOccupy";
            }

        },
          refreshFlat:function () {
              var $this = this;
              axios.get(basepath+"/api/sysSetting/findAllGpWidthCurrentFlight").then(function (response) {
                  $this.flats=response.data;
                  $this.flats.sort(function (val1,val2) {
                      parseInt(val1.py)>parseInt(val2.py)?1:parseInt(val1.py)==parseInt(val2.py)?parseInt(val1.px)==parseInt(val2.px)?1:-1:-1;
                  })
                  // var map = {};
                  // var maxX = 0;
                  // var minX =1000
                  // var minY=1000;
                  // var maxY = 0;
                  // var baseNum = 0;
                  // var remainder=0;
                  // response.data.forEach(function(val){
                  //     maxX = maxX>parseInt(val.px)?maxX:parseInt(val.px);
                  //     maxY = maxY>parseInt(val.py)?maxX:parseInt(val.py);
                  //     minX = minX<parseInt(val.px)?minX:parseInt(val.px);
                  //     minY = minY<parseInt(val.py)?minY:parseInt(val.py);
                  //     if(!map[val.apron]){
                  //         map[val.apron]={apron:val.apron,minX:1000,maxX:0,maxY:0,minY:10000,rows:{}};
                  //     }
                  //     if(!map[val.apron].rows[val.py]){
                  //         map[val.apron].rows[val.py]=[]
                  //     }
                  //     map[val.apron].rows[val.py].push(val);
                  //
                  //     map[val.apron].maxX = map[val.apron].maxX>parseInt(val.px)?map[val.apron].maxX:parseInt(val.px);
                  //     map[val.apron].maxY = map[val.apron].maxY >parseInt(val.py)?map[val.apron].maxY :parseInt(val.py);
                  //
                  //     map[val.apron].minX = map[val.apron].minX<parseInt(val.px)?map[val.apron].minX:parseInt(val.px);
                  //     map[val.apron].minY = map[val.apron].minY<parseInt(val.py)?map[val.apron].minY:parseInt(val.py);
                  //     map[val.apron].baseNum = parseInt(24/(map[val.apron].maxX-map[val.apron].minX+1))
                  //
                  // })
                  // baseNum = parseInt(24/(maxX-minX+1));
                  // $this.baseNum =baseNum;
                  // var flats=[];
                  // for(var key in map){
                  //      var apron = map[key];
                  //      var rows =apron.rows;
                  //      apron.rows=[];
                  //      for(var py in rows ){
                  //          apron.rows.push(rows[py]);
                  //          rows[py].sort(function (val1,val2) {
                  //              parseInt(val1.px)>parseInt(val2.px)?1:-1;
                  //          })
                  //      }
                  //     apron.rows.sort(function (val,val2) {
                  //         return parseInt(val[0].py)>parseInt(val2[0].py)?1:-1;
                  //     })
                  //     flats.push(apron);
                  //
                  // }
                  // flats.sort(function (val1,val2) {
                  //     return val1.minY==val2.minY?val1.minX<val2.minX?-1:1:val1.minY<val2.minY?-1:1;
                  // })
                  // function inFlat(x,y) {
                  //     var res= false;
                  //     flats.forEach(function (t) {
                  //         if(t.minX<=x&&x<=t.maxX&&t.minY<=y<=t.maxY) {
                  //             res=true;
                  //         }
                  //     })
                  //     return res;
                  // }
                  //
                  // function getApron(x,y) {
                  //     var result=false;
                  //     flats.forEach(function (val) {
                  //         if(val.minX==x&&val.minY==y){
                  //             result = val;
                  //         }
                  //     })
                  //     return result;
                  // }
                  // var result=[];
                  // for (var i=0;i<=maxY-minY;i++){
                  //     for(var j=0;j<=maxX-minX;j++){
                  //        if(!result[i]){
                  //            result[i]=[];
                  //        }
                  //        if(!inFlat(j+minX,i+minY)){
                  //            result[i][j]=true;
                  //        }else{
                  //            result[i][j]=getApron(j+minX,i+minY);
                  //        }
                  //
                  //     }
                  // }
                  // $this.flats = result;
                  // console.log(result);
              })
          }
        },
        mounted:function () {
           console.log(this.parentData)
        },
        created:function (){
            if(this.parentData&&this.parentData.flats){
                this.flats =this.parentData.flats;
            }else{
                this.refreshFlat();
            }

        }
    })

    module.exports = VueComponent;

    return VueComponent;
});
